Ext.define('Admin.view.needWater.waterSupplyCal.WaterSupplyCalController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.waterSupplyCalController',
    views: ['Admin.view.needWater.waterSupplyCal.WaterSupplyCal'],
    beforeRender: function () {
        this.showNum = 0;
    },
    showPage: function () {
        var me = this;
        me.showNum++;
        if (me.showNum == 1) {
            me.getDefaultData();
            // me.resizePanel();
            // window.onresize = function () {
            //     me.resizePanel();
            // };
            me.buildWSCalChart1();
            me.buildWSCalChart2();
        }
    },
    validateNumber: function (val) {
        var regex = /^\d+(\.\d+)?$/g;
        return regex.test(val) ? true : '请输入数字';
    },
    getDefaultData: function () {
        var me = this;
        var url = "/jsite-szy-dispatch/a/szy/dispatch/supplyCal/default?proCd=" + $.dispatch.getProCd();
        $.getJSON(url, function (data) {
            if (data) {
                me.setDefaultData(data);
            }
        });
    },
    setDefaultData: function (data) {
        var me = this;
        // 用水消耗系数
        me.lookupReference('uCe').setValue(data.uCe);
        // 最大用水需求
        me.lookupReference('maxNW').setValue(data.reqW);
        // 最大供水能力
        me.lookupReference('maxNW').getValue(data.maxYrWs);
        // 地表水资源量
        me.lookupReference('swr').setValue(data.swr);
        // 河道内最小环境需水量
        me.lookupReference('minRivWat').setValue(data.minRivWat);
        // 洪水弃水
        me.lookupReference('fDq').setValue(data.fDq);
        // 天然来流量
        me.lookupReference('inq').setValue(data.inq);
        // 水库蓄变量
        me.lookupReference('totV').setValue(data.totV);
        // 外调水量
        me.lookupReference('tq').setValue(data.tq);
        me.lookupReference('resultsP').setValue(data.resultsP);
        me.lookupReference('resultsD').setValue(data.resultsD);
        me.lookupReference('resultsEm').setValue(data.resultsEm);
        me.lookupReference('maxSl').setValue(data.maxSl);
    },
    saveOrUpdate: function (mask) {
        var me = this;
        // var myMask = new Ext.LoadMask($.dispatch.componentQuery('waterSupplyCal'), { 
        //     msg: "正在保存..." 
        // });
        // myMask.show();
        var data = {
            uCe: me.lookupReference('uCe').getValue(),
            reqW: me.lookupReference('maxNW').getValue(),
            maxYrWs: me.lookupReference('maxNW').getValue(),
            swr: me.lookupReference('swr').getValue(),
            minRivWat: me.lookupReference('minRivWat').getValue(),
            fDq: me.lookupReference('fDq').getValue(),
            inq: me.lookupReference('inq').getValue(),
            totV: me.lookupReference('totV').getValue(),
            tq: me.lookupReference('tq').getValue(),
            cCea: 0,
            cCeb: 0.4,
            resultsP: me.lookupReference('resultsP').getValue(),
            resultsD: me.lookupReference('resultsD').getValue(),
            resultsEm: me.lookupReference('resultsEm').getValue(),
            maxSl: me.lookupReference('maxSl').getValue()
        };
        var url = '/jsite-szy-dispatch/a/szy/dispatch/supplyCal/saveOrUpdate?proCd=' + $.dispatch.getProCd();
        $.ajax({
            url: url,
            method: 'POST',
            contentType: 'application/json',
            data: JSON.stringify(data)
        })
        .done(function(res) { 
            if (res.code == 1) {
                Ext.Msg.alert("提示信息", "保存成功!");
            }
        })
        .fail(function() { 
            Ext.Msg.alert("提示信息", "保存失败!");
        })
        .always(function () {
            mask.hide();
        })
    },
    clacResult: function () {
        var me = this;
        var myMask = new Ext.LoadMask($.dispatch.componentQuery('waterSupplyCal'), { 
            msg: "正在计算..." 
        });
        myMask.show();
        // 用水消耗系数
        var uCe = me.lookupReference('uCe').getValue();
        // 最大用水需求
        var reqW = me.lookupReference('maxNW').getValue();
        // 最大供水能力
        var maxYrWs = me.lookupReference('maxNW').getValue();
        var row1Max = reqW;

        // 地表水资源量
        var swr = me.lookupReference('swr').getValue();
        // 河道内最小环境需水量
        var minRivWat = me.lookupReference('minRivWat').getValue();
        // 洪水弃水
        var fDq = me.lookupReference('fDq').getValue();
        // 天然来流量
        var inq = me.lookupReference('inq').getValue();
        // 水库蓄变量
        var totV = me.lookupReference('totV').getValue();
        // 外调水量
        var tq = me.lookupReference('tq').getValue();

        // 天然径流量
        var row3p1 = me.lookupReference('row3p1').getValue();

        const a = 0, b = 0.4;
        // 正算法
        var resultsP = uCe * row1Max;
        // 倒算法
        var resultsD = swr - minRivWat - fDq;
        // 经验公式算法
        var resultsEm = a + b * row3p1;
        var resultArr = [resultsP, resultsD, resultsEm].sort(function(a, b){
            return a - b;
        });
        // 推荐可供水量
        var maxSl = resultArr[0];
        me.lookupReference('resultsP').setValue(resultsP);
        me.lookupReference('resultsD').setValue(resultsD);
        me.lookupReference('resultsEm').setValue(resultsEm);
        me.lookupReference('maxSl').setValue(maxSl);
        me.saveOrUpdate(myMask);
    },
    resizePanel: function () {
        var me = this;
        var container = me.getView();
        container.setHeight(document.documentElement.clientHeight - 65);
    },
    buildWSCalChart1: function (dom) {
        // var width = $('#wsCalChart1').width();
        // var height = $('#wsCalChart1').height();
        // var chartId = dom.el.id + "-body";
        $('#11').highcharts({
            // chart: {
            //     width: width,
            //     height: height
            // },
            title: {
                text: ''
            },
            xAxis: {
                categories: ['2000', '2001', '2002', '2003', '2004', '2005', '平均']
            },
            yAxis: {
                title: {
                    text: '供水能力'
                },
                plotLines: [{
                    value: 0,
                    width: 1,
                    color: '#808080'
                }]
            },
            tooltip: {
                // valueSuffix: '°C'
            },
            legend: {
                layout: 'horizontal',
                align: 'center',
                verticalAlign: 'top',
                borderWidth: 0
            },
            series: [{
                name: '平均',
                data: [11, 12, 9, 9, 9.5, 11, 10.5]
            },
            {
                name: '最大供水能力',
                data: [10, 10, 10, 10, 10, 10, 10]
            }
            ],
            credits: {
                enabled: false
            }
        });
    },
    buildWSCalChart2: function () {
        setTimeout(function () {
            $('#wsCalChart2').highcharts({
                title: {
                    text: ''
                },
                xAxis: {
                    categories: ['2000', '2001', '2002', '2003', '2004', '2005', '平均']
                },
                yAxis: {
                    title: {
                        text: '径流量'
                    },
                    plotLines: [{
                        value: 0,
                        width: 1,
                        color: '#808080'
                    }]
                },
                tooltip: {
                    // valueSuffix: '°C'
                },
                legend: {
                    layout: 'horizontal',
                    align: 'center',
                    verticalAlign: 'top',
                    borderWidth: 0
                },
                series: [{
                    name: '平均',
                    data: [11, 12, 9, 9, 9.5, 11, 10.5]
                },
                {
                    name: '天然径流量',
                    data: [10, 10, 10, 10, 10, 10, 10]
                }
                ],
                credits: {
                    enabled: false
                }
            });
        }, 500);
    }
})
